/**
 * 动态地给一个对象添加一些额外的职责。就增加功能来说，装饰模式比生成子类更加灵活。
 *
 * 优点：
 *  1.装饰类和被装饰类可以独立发展，而不会相互耦合。
 *  2.装饰模式是继承关系的一个替代方案。
 *  3.可以动态扩展一个实现类的功能。
 *
 * 缺点：多层的装饰比较复杂。因此需要尽量减少装饰类的数量。
 *
 * 使用场景：
 */
package com.yan.decorator;